package org.fujay.commons.langchain4j.core.model.impl;

import dev.langchain4j.model.chat.ChatModel;
import dev.langchain4j.model.chat.DisabledChatModel;
import dev.langchain4j.model.chat.DisabledStreamingChatModel;
import dev.langchain4j.model.chat.StreamingChatModel;
import dev.langchain4j.model.embedding.DisabledEmbeddingModel;
import dev.langchain4j.model.embedding.EmbeddingModel;
import org.fujay.commons.langchain4j.core.enumd.ModelSupplierEnum;
import org.fujay.commons.langchain4j.core.model.ModelProvider;
import org.fujay.commons.langchain4j.core.options.LlmOptions;

/**
 * @author slm
 * @description
 */
public class DefaultModelProvider implements ModelProvider {
    /**
     * @param llmOptions
     * @author sunliming
     * @description 对话模型
     */
    @Override
    public ChatModel ChatModel(LlmOptions llmOptions) {
        return new DisabledChatModel();
    }

    /**
     * @param llmOptions
     * @author sunliming
     * @description 生成流式对话模型
     */
    @Override
    public StreamingChatModel streamingChatModel(LlmOptions llmOptions) {
        return new DisabledStreamingChatModel();
    }

    /**
     * @param llmOptions
     * @author sunliming
     * @description 向量模型
     */
    @Override
    public EmbeddingModel embeddingModel(LlmOptions llmOptions) {
        return new DisabledEmbeddingModel();
    }

    /**
     * @author sunliming
     * @description 模型供应商
     */
    @Override
    public ModelSupplierEnum modelSupplierEnum() {
        return ModelSupplierEnum.DEFAULT_AI;
    }
}
